package com.linx.common.core.domain.model;

import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * 正元入住对象
 */

@Data
public class ZYAccessForm implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     *  员工
     */
    private List<Staff> staff;

    /**
     *  房间，门锁设备 / 房间信息 任选其一
     */
    private List<Room> room;

    /**
     *  门锁设备，门锁设备 / 房间信息 任选其一
     */
    private List<Device> device;


    public ZYAccessForm(List<Staff> staff, List<Room> room , List<Device> device) {
        this.staff = staff;
        this.room = room;
        this.device = device;
    }

    /**
     * 员工
     */
    @Data
    public static class Staff implements Serializable {

        private String staffNo; // 工号

        private String staffUniqueID; // 员工唯一ID

        public Staff(String staffNo, String staffUniqueID) {
            this.staffNo = staffNo;
            this.staffUniqueID = staffUniqueID;
        }

    }

    /**
     * 房间
     */
    @Data
    public static class Room implements Serializable {

        private String roomID; // 房间ID
        private String effectiveTime; // 入住的开始时间 -》 不填就是不限制
        private String expiryTime; // 入住的结束时间 -》 不填就是不限制


        public Room(String roomID, String effectiveTime, String expiryTime) {
            this.roomID = roomID;
            this.effectiveTime = effectiveTime; // 入住的开始时间 -》 不填就是不限制  unix : 秒
            this.expiryTime = expiryTime; // 入住的结束时间 -》 不填就是不限制  unix : 秒
        }

    }

    /**
     * 设备
     */
    @Data
    public static class Device implements Serializable {

        private String deviceID; // 设备ID
        private String effectiveTime; // 入住的开始时间 -》 不填就是不限制  unix : 秒
        private String expiryTime; // 入住的结束时间 -》 不填就是不限制  unix : 秒


        public Device(String deviceID, String effectiveTime, String expiryTime) {
            this.deviceID = deviceID;
            this.effectiveTime = effectiveTime;
            this.expiryTime = expiryTime;
        }

    }

}
